Pular para o conteúdo

Consertando o ^M em scripts shell

Dica publicada em Shell Script / Miscelânea
Rui Ogawa rogawa
Hits: 24.201 Categoria: Shell Script Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

Consertando o ^M em scripts shell

Hoje fui colocar em produção um firewall e notei que ao tentar executar o script, retornava o seguinte erro:

# /bin/bash^M: bad interpreter: Arquivo ou diretório não encontrado

O problema acontece quando um shell script é aberto com algum editor DOS. Ele insere quebras de linhas que os editores *NIX não interpretam, inserindo um ^M no fim da linha.

Como sempre, busquei ajuda primeiro aqui no VOL e encontrei algumas soluções usando o comando sed, mas dando uma pesquisada achei uma solução mais simples e funcional com o pacote tofrodos.

A solução foi apontada pelo Rubens Queiroz de Almeida, no Dicas-L e está na íntegra e muitíssimo bem explicada no link abaixo:

Gráfico da evolução da popularidade das 20 distros mais utilizadas

Script para redimensionar muitas fotos

Base de dados mais organizada em shell script

Sistema de backup em shell script

Execução anônima em xpdf

Acompanhando o (bash) shell script - debug

#1 Comentário enviado por enzo em 21/05/2009 - 16:01h
Rui

Através do editor VI também podemos fazer o seguinte:

:set fileformat=dos

ou

:set fileformat=unix

no modo de comando.

Abraço,
#2 Comentário enviado por ledubr em 21/05/2009 - 16:37h
No vi, voce pode fazer :

:%s/^M// ( digitar :%s/control-v control-m// )


[]'s
#3 Comentário enviado por rogawa em 23/05/2009 - 12:03h
Agradeço imensamente os comentários do enzo e ledubr. Não é sempre que temos liberdade pra instalar o pacote tofrodos, então realmente nada melhor que saber utilizar os recursos nativos. Valeu!

Contribuir com comentário

Entre na sua conta para comentar.